package com.eddie.memento;

import lombok.Data;

/**
 * Originator(发起人)：负责创建一个备忘录Memento，用以记录当前时刻自身的内部状态，
 * 并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。
 *
 * @author Eddie
 * @date 2022/08/04 11:54
 **/

@Data
public class Originator {
    /**
     * 状态信息
     */
    private String state;

    /**
     * 编写一个方法，可以保存一个状态对象Memento
     * 编写一个方法返回Memento
     */
    public Memento saveStateMemento() {
        return new Memento(state);
    }

    /**
     * 通过备忘录对象，恢复状态
     */
    public void getStateFromMemento(Memento memento) {
        state = memento.getState();
    }
}
